package com.sms.biz;

import java.util.List;
import java.util.Map;

import com.sms.po.UserInfoSms;

public interface IUserInfoSmsBiz {
	/**
	 * 增加一个用户
	 * @param uis
	 * @return
	 */
	public boolean addUserInfoSms(UserInfoSms uis);

	/**
	 * 删除一个用户
	 * @param uis
	 * @return
	 */
	public boolean removeUserInfoSms(UserInfoSms uis);
	
	/**
	 * 修改一个用户
	 * @param uis
	 * @return
	 */
	public boolean updateUserInfoSms(UserInfoSms uis);
	
	/**
	 * 根据用户ID删除一个用户
	 * @param ui
	 * @return
	 */
	public boolean removeUserInfoSmsById(String ui);
	
	/**
	 * 根据用户ID查询一个用户
	 * @param id
	 * @return
	 */
	public UserInfoSms findById(String id);
	
	/**
	 * 根据用户ID和密码查询一个客户信息:用于登录
	 * @param id
	 * @param pass
	 * @return
	 */
	public UserInfoSms findByIdAndPass(String id,String pass);
	
	/**
	 * 根据客户类型查询客户列表
	 * @param type
	 * @return
	 */
	public List<UserInfoSms> findByType(String type,int start,int limit);
	
	/**
	 * 根据客户类型查询客户列表的总量：用于分页
	 * @param type
	 * @return
	 */
	public int findByTypeCount(String type);
	
	/**
	 * 根据Map查询客户
	 * @param map
	 * @return
	 */
	public List<UserInfoSms> findByMap(Map<String,Object> map,int start,int limit);
	
	/**
	 * 根据Map查询客户的总量：用于分页
	 * @param map
	 * @return
	 */
	public int findByMapCount(Map<String,Object> map);
	
	/**
	 * 根据用户ID(代理用户)查询它的所有下级用户
	 * @param supper_user_id
	 * @return
	 */
	public List<UserInfoSms> findSubUserById(String user_id,int start,int limit);
	
	
	/**
	 * 根据用户ID(代理用户)查询它的所有下级用户的总量:用于分页
	 * @param user_id
	 * @return
	 */
	public int findSubUserByIdCount(String user_id);
	
	/**
	 * 根据用户ID(代理用户)查询它的所有下级用户
	 * @param parentUserId
	 * @return
	 */
	public List<String> findSubUserIds(String parentUserId);
}
